JOANNEUMHomeForschungsbereicheNeuSite MapRESEARCH      englishsuchenHilfe

vorheriges Kapitel &Umlbersicht Inhalt Hilfe Beispiele laden nächstes Kapitel

Eine Meldung auf dem Bildschirm anzeigen

Meldungen an den Benützer bieten sich in vielen Situationen an. Wenn Ihr Programm "ein Problem hat", machen Sie darauf aufmerksam. Läuft eine längere Verarbeitung, verkürzen Sie die Wartezeit und geben dem Benützer die Sicherheit, daß das Programm arbeitet. Wir unterscheiden:

"MsgBox"-Programm-unterbrechende Meldungen

VBA stellt uns hier die Funktion "MsgBox" zur Verfügung, deren Erscheinungsbild Sie aus der interaktiven Arbeit mit EXCEL und anderen Windows-Programmen sicher schon kennen: "MsgBox" zeigt eine Meldung in einem Dialogfeld an und wartet auf die Auswahl einer Schaltfläche. Die Funktion liefert einen Wert, der die ausgewählte Schaltfläche bestimmt.

Laden Das folgende Beispiel für das Programmieren eines Meldungs-Dialogs finden Sie in der Datei "Meldung.xls".
Sub MeldungsDlg_Anzeigen()

Mldg = "Wollen Sie fortfahren ?"    ' Meldung definieren.
Stil = vbYesNo + vbCritical + vbDefaultButton1
        ' Schaltflächen definieren.
Title = "MeldungsDlg-Demo"  ' Titel definieren.
Help = "DEMO.HLP"  ' Hilfedatei definieren.
Kontext = 1000  ' Kontext für Thema definieren
        ' Meldung anzeigen.
Result = MsgBox(Mldg, Stil, Title, Help, Kontext)
If Result = vbYes Then   ' Benutzer hat "Ja" gewählt.
    TestZeichenF = "Ja" ' entsprechende Operationen ausführen.
Else   ' Benutzer hat "Nein" gewählt.
    TestZeichenF = "Nein"   ' entsprechende Operationen ausführen.
End If
MsgBox "<<Ergebnis>> Is: " & Result

End Sub


Syntax

MsgBox(Prompt[,buttons][,title][,helpfile,context])

Elemente

Die Funktion MsgBox verwendet die folgenden benannten Argumente:

Argument Beschreibung
Prompt Zeichenfolgenausdruck, der als Meldung im Dialogfeld erscheint. Die Maximallänge von Meldung ist etwa 1024 Zeichen, abhängig von der Breite der verwendeten Zeichen. Wenn Meldung aus mehreren Zeilen bestehen soll, müssen Sie die Zeilen mit einem Wagenrücklaufzeichen (Zeichencode 13) oder einer Folge aus Wagenrücklaufzeichen und Zeilenvorschubzeichen (Zeichencode 10) voneinander trennen.
Buttons Numerischer Ausdruck mit einem kombinierten Wert, der die Anzahl und den Typ der Schaltflächen, das verwendete Symbol, die voreingestellte Schaltfläche und die Bindung des Dialogfelds angibt. Wenn Sie Schaltflächen nicht angeben, ist die Voreinstellung 0.
Title Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes erscheint. Wenn Sie Title nicht angeben, erscheint kein Text in der Titelleiste.
Helpfile Zeichenfolgenausdruck, der die Hilfedatei mit der kontextbezogenen Hilfe für das Dialogfeld angibt. Wenn Sie Helpfile angeben, müssen Sie auch Context angeben.
Context Numerischer Ausdruck mit der Zahl für den Hilfekontext, die der Autor der Hilfe für das entsprechende Hilfethema vergeben hat. Wenn Sie Context angeben, müssen Sie auch Helpfile angeben.

Die Werte für das benannte Argument "Buttons" sind:

Konstante Wert Beschreibung
vbOKOnly 0 Nur "OK" anzeigen.
vbOKCancel 1 "OK" und "Abbrechen" anzeigen.
vbAbortRetryIgnore 2 "Abbrechen", "Wiederholen" und "Ignorieren" anzeigen.
vbYesNoCancel 3 "Ja", "Nein" und "Abbrechen" anzeigen.
vbYesNo 4 "Ja", und "Nein" anzeigen.
vbRetryCancel 5 "Wiederholen" und "Abbrechen" anzeigen.
vbCritical 16 Stop-Symbol anzeigen.
vbQuestion 32 Fragezeichen-Symbol anzeigen.
vbExclamation 48 Ausrufezeichen-Symbol anzeigen.
vbInformation 64 Info-Symbol anzeigen.
vbDefaultButton1 0 Erste Schaltfläche ist Voreinstellung.
vbDefaultButton2 256 Zweite Schaltfläche ist Voreinstellung.
vbDefaultButton3 512 Dritte Schaltfläche ist Voreinstellung.
vbApplicationModal 0 An die Anwendung gebunden. Der Benutzer muß das Meldungsfeld beantworten, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann.
vbSystemModal 4096 An das System gebunden. Alle Anwendungen werden angehalten, bis der Benutzer das Meldungsfeld beantwortet.

Die erste Gruppe von Werten (0-5) beschreibt die Anzahl und den Typ der im Dialogfeld angezeigten Schaltflächen. Die zweite Gruppe (16, 32, 48, 64) beschreibt die Symbolart. Die dritte Gruppe (0, 256, 512) legt die voreingestellte Schaltfläche fest. Die vierte Gruppe (0, 4096) legt fest, in welcher Form das Dialogfeld gebunden ist. Verwenden Sie beim Kombinieren von Zahlen zu einem Gesamtwert für das Argument "Buttons" nur eine Zahl aus jeder Gruppe.

Hinweis Diese Konstanten sind durch Visual Basic festgelegt. Daher können Sie sie an einer beliebigen Stelle im Code anstelle der tatsächlichen Werte verwenden.

RÜCKGABEWERTE

Konstante Wert gedrückte Schaltfläche
vbOK 1 "OK"
vbCancel 2 Abbrechen
vbAbort 3 Abbruch
vbRetry 4 Wiederholen
vbIgnore 5 Ignorieren
vbYes 6 Ja
vbN0 7 Nein

Anmerkungen

Wenn Sie "Helpfile" und "Context" angeben, erscheint die Schaltfläche "Hilfe" automatisch im Dialogfeld.

Wenn im Dialogfeld die Schaltfläche "Abbrechen" erscheint, hat das Drücken der Taste ESC dieselbe Wirkung wie das Klicken auf "Abbrechen". Wenn im Dialogfeld die Schaltfläche "Hilfe" erscheint, wird darüber hinaus eine kontextbezogene Hilfe zur Verfügung gestellt. Ein Wert wird aber nur zurückgegeben, wenn eine der anderen Schaltflächen ausgewählt wird.

Nicht-unterbrechende Meldung

Die Statusleiste-am unteren Rand des EXCEL-Fensters-versorgt Sie während der interaktiven Arbeit laufend mit Informationen über das, was EXCEL gerade tut. Mit Hilfe der Eigenschaft "Statusbar" können Sie, während eine VBA-Programm läuft, dort Meldungen anzeigen; das Programm läuft weiter.

DIE STATUSBAR-EIGENSCHAFT

Syntax

Application. StatusBar

Beispiel

In diesem Beispiel werden die Zahlen von 1 bis 400 erzeugt und in der Statuszeile angezeigt. Danach wird wieder auf die Anzeige der normalen EXCEL-Statusmeldungen umgeschaltet:

Sub StatusBar()

' Hält fest, ob die Statusleiste angezeigt wird oder nicht
AlterZustandStatusLeiste = Application.DisplayStatusBar
' Statusleiste auf alle Fälle anzeigen
Application.DisplayStatusBar = True
' Selbst-definierte Statusmeldung anzeigen
' Arbeit verrichten, während Anzeige sichtbar ist
For Zähler = 1 To 400
    Application.StatusBar = Zähler
Next
' Selbst-definierte Statusmeldung löschen
Application.StatusBar = False
' Alten Zustand (angezeigt/nicht angezeigt)
' wiederherstellen
Application.DisplayStatusBar = AlterZustandStatusLeiste

End Sub


DIE "DISPLAYSTATUSBAR"-EIGENSCHAFT

True, wenn die Statusleiste angezeigt wird, False, wenn Sie fehlt. Schreib-/Lese-Zugriff.

Nicht-unterbrechende Meldung in EXCEL-Tabelle

An der Statuszeilen-Meldung werden Sie zurecht kritisieren, daß sie kaum bemerkt wird. Mit ein wenig Arbeit können Sie aber eine deutlich sichtbare Meldung erzeugen. Wir benötigen dazu ein EXCEL-Tabellenblatt und ein wenig Code. Angenommen, die Meldung soll in Zelle B4 erscheinen, dann müssen wir schreiben:

Sub MeldungInTabelle()
Set AltePosition = ActiveCell
Sheets("Tabelle1").Select
For Zähler = 1 To 200
    [B4].Value = Zähler
Next
Application.GoTo Reference:=AltePosition
End Sub


In der Zeile "Set AltePosition..." halten wir fest, in welcher Tabelle der Cursor gerade wo steht. Dorthin gehen wir in der Zeile "Application.Goto..." zurück.

vorheriges Kapitel &Umlbersicht Inhalt Hilfe Beispiele laden nächstes Kapitel

------------

Copyright © by JOANNEUM RESEARCH Forschungsgesellschaft mbH